package com.mes.cloud.service;

import com.github.pagehelper.PageInfo;
import com.mes.cloud.dto.BmeBcFiledDTO;
import com.mes.cloud.util.CommPager;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * BC_Filed基础表
 *
 * @author xhy
 * @date 2019/05/09 16:00
 */
public interface BmeBcFiledService {

    /**
     * 根据条件获取BC_Filed基础表列表
     *
     * @param condition
     * @return List<BmeBcFiledDTO>
     * @author xhy
     * @date 2019/05/09 16:00
     */
    List<BmeBcFiledDTO> getBmeBcFiledList(Map<Object, Object> condition);

    /**
     * 获取BC_Filed基础表的最大记录数
     *
     * @param condition
     * @return long
     * @author xhy
     * @date 2019/05/09 16:00
     */
    long getBmeBcFiledCount(Map<Object, Object> condition);

    /**
     * 新增BC_Filed基础表
     *
     * @param bmeBcFiledDTO
     * @return long
     * @author xhy
     * @date 2019/05/09 16:00
     */
    long insertBmeBcFiled(BmeBcFiledDTO bmeBcFiledDTO);

    /**
     * 更新BC_Filed基础表
     *
     * @param bmeBcFiledDTO
     * @return long
     * @author xhy
     * @date 2019/05/09 16:00
     */
    long updateBmeBcFiled(BmeBcFiledDTO bmeBcFiledDTO);

    /**
     * 删除BC_Filed基础表
     *
     * @param id
     * @return long
     * @author xhy
     * @date 2019/05/09 16:00
     */
    long delBmeBcFiledById(String id);

    /**
     * 根据BC_Filed基础表标识获取BC_Filed基础表
     *
     * @param id
     * @return long
     * @author xhy
     * @date 2019/05/09 16:00
     */
    BmeBcFiledDTO getBmeBcFiledById(String id);

    /**
     * 根据条件获取BC_Filed基础表列表并进行分页
     *
     * @param condition
     * @return List<BmeBcFiledDTO>
     * @author xhy
     * @date 2019/05/09 16:00
     */
    CommPager<BmeBcFiledDTO> getBmeBcFiledListPage(Map<Object, Object> condition);

    /**
     * 对BC_Filed基础表标进行批量删除操作
     *
     * @param map
     * @return long
     * @author xhy
     * @date 2019/05/09 16:00
     */
    long batchDelete(Map<Object, Object> map);

    /**
     * 对BC_Filed是否启用
     *
     * @param map
     * @return long
     * @author xhy
     * @date 2019/05/09 16:00
     */
    long enable(Map<Object, Object> map);

    /**
     * 导出
     *
     * @param file
     * @return
     */
    int importExcel(MultipartFile file) throws Exception;

    /**
     * 导出
     *
     * @param map
     * @param response
     */
    void exportFile(Map<Object, Object> map, HttpServletResponse response) throws Exception;

    List<BmeBcFiledDTO> findListByCodePickmapCode(Map<Object, Object> map);
}
